import axios from 'axios'
// 引入
import JSONbig from 'json-bigint'

// 导入进度条插件
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

const _axios = axios.create({
  baseURL: 'http://47.98.96.200:10084/material/'
  // 定义后端返回原始数据的处理方法
  // data 后端返回的原始数据，axios默认使用JSON转换数据
  // transformResponse: [function (data) {
  // js里面的整数有安全范围，即最大能显示的范围，超过了这个范围可能会精度丢失,造成axios转换后端返回的JSON字符窜时不精确
  // 如果返回的数据不是json格式，则json-bigint会报错
  // try {
  //   //作用1：把json字符串转为js对象
  //   //作用2：把里面的大数字做安全处理
  //   return JSONbig.parse(data)
  // }catch(err){
  //   return data;
  // }
  // 使用  取值时.toString()
  // }]

})

// 请求拦截器
_axios.interceptors.request.use(function (config) {
  // 显示进度条
  Nprogress.start()
  // 请求前设置token
  config.headers.apiKey = window.sessionStorage.getItem('token')
  return config
}, function (error) {
  return Promise.reject(error)
})

// 响应拦截器
_axios.interceptors.response.use((response) => {
  Nprogress.done()
  return response
}, (error) => {
  return Promise.reject(error)
})

export default _axios
